package site.jlopen.dao.project;

import site.jlopen.domain.project.KusciaProjectFlow;
import site.jlopen.domain.project.event.KusciaProjectFlowEvent;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;

/**
* @ClassName: KusciaProjectFlowDao
* @Description: 提供基本的增删改查接口，本类不可手动修改
* @author 码农小鹿
* @date 2024-08-21
 */
public interface KusciaProjectFlowDao {

	/**
	 * 完全插入，没有条件判断
	 */
    int insert(KusciaProjectFlow record);

	/**
	 * 不完全插入，根据条件判断
	 */
    int insertSelective(KusciaProjectFlow record);

	/**
	 * 批量完全插入，没有条件判断
	 */
    int insertBatch(List<KusciaProjectFlow> list);

	/**
	 * 完全更新，没有条件判断
	 */
    int update(KusciaProjectFlow record);

	/**
	 * 不完全更新，根据条件判断
	 */
    int updateSelective(KusciaProjectFlow record);

	/**
	 * 根据主键删除信息
	 */
    int deleteByKey(Long flowId);

	/**
	 * 根据多个主键删除信息
	 */
    int deleteByKeys(List<Long> flowIds);

	/**
	 * 修改删除，主键/删除的字段名
	 */
    int deleteUpdate(@Param("flowId")Long flowId, @Param("delColumn")String delColumn);

	/**
	 * 修改删除，多个主键/删除的字段名
	 */
    int deleteUpdates(@Param("flowIds")List<Long> flowIds, @Param("delColumn")String delColumn);

	/**
	 * 根据主键获取单个信息
	 */
    KusciaProjectFlowEvent selectByKey(Long flowId);

	/**
	 * 根据分页查询列表
	 */
    List<KusciaProjectFlowEvent> selectAll(@Param("record")Map<String, Object> record, @Param("pageOffset")int pageOffset, @Param("pageSize")int pageSize);

	/**
	 * 分页搭配的总数量
	 */
    long selectAllCount(@Param("record")Map<String, Object> record);
    
    /**
	 * 没有分页查询列表
	 */
    default List<KusciaProjectFlowEvent> selectAllNotPage(Map<String, Object> record) {
    	return selectAll(record, 0, 0);
    }
}